As is known in the art, DNS is a hierarchical distributed naming system that is used for naming computers, services, and resources on a communications network such as the Internet or a private network. Various types of DNS service discovery protocols have been developed to enable network devices to discover shared computing resources on a computer network. For example, Multicast DNS (mDNS) is a protocol that allows network devices operating on a small network to automatically communicate with each other and share information regarding network computing resources without utilizing a central DNS server. When a network device joins a network, it “announces” its presence in the form of an mDNS multicast query to a range of Internet Protocol (IP) addresses on a local network. When an mDNS query is broadcast, other network devices on the local network will receive the announcement and store it in their mDNS cache. An mDNS announcement includes an IP address of the network device as well as a list of shared network services provided by the network device. These services can include printing services, shared file folders, iTunes music repositories, projectors, or any number of other network services and resources. The mDNS protocol enables the formation of ad hoc networks of computers and network services without the need for the network devices to be manually configured by device users, since the network devices share their services and information with each other automatically.
One disadvantage to the mDNS protocol is that the range of an mDNS multicast query is limited to a “link-local” network (or subnetwork) that the network device is located on. In general, a “link-local” network refers to a segment of a network in which network devices can exchange packets without IP header data being modified. In practice, a “link-local” network consists of all devices connected to the same network router, as a network router does not forward packets with link-local addresses. As such, the range of an mDNS multicast query is limited to the broadcast range of a single network router. However, in an alternative implementation using mDNS multicast groups, for example, network routers can be configured to transmit mDNS broadcasts between subnetworks. However, these configurations must be manually applied to each router, which can be impractical for large networks with many routers and subnetworks.
Moreover, with mDNS protocols, another disadvantage is that the network devices must periodically “push” a network service announcement to the broadcast domain, which is then pushed to all network devices on the broadcast domain. The broadcast domain does not respond to service requests—it only pushes service request to network devices. Depending on the size of the local network, this type of “blind advertisement” of network information can generate a lot of network traffic, resulting in a severe drain on network resources and bandwidth as every request must be transmitted to every device on the network. This is problematic for mobile phones, for example, which must continuously power-up and power-down to receive and transmit the mDNS broadcasts. The result is a limitation on the number of devices that can be on a signal broadcast domain.
One alternative to the mDNS protocols includes a Wide Area Broadcast DNS service discovery (WAB DNS-SD) protocol in which a list of network services is defined on a central DNS server. Instead of blindly “pushing” network service information across networks as with the mDNS protocols, the WAB DNS-SD protocol allows network devices to “pull” network service information from the central DNS server on demand. The WAB DNS-SD protocol enables network devices on any subnetwork to query the central DNS server to obtain network service information. However, with WAB DNS-SD, the network devices must be manually configured to query the DNS server for service information, as compared to the mDNS protocols which automatically discover services on a subnetwork through mDNS broadcasts. Moreover, while WAB DNS-SD enables service discovery across subnetworks, the WAB DNS-SD protocol is not “subnetwork aware” in that the protocol eliminates the location specificity of mDNS broadcasts. In other words, the WAB DNS-SD protocol does not provide the granular location specificity which is desirable for location-specific network devices such as printers, for example. In particular, a shared network service like a printer would only be useful to users that are physically located near the printer.